﻿using Project_veilingsite.Models;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;

namespace Project_veilingsite.Controllers
{
    public class BekijkVeilingController : Controller
    {
        private dtb_Veilingssite _db = new dtb_Veilingssite();

        public ActionResult Index(int id)
        {
            try
            {
                var model = _db.Veilingen.ToList().Where(v => v.id == id);
                return View(model);
            }
            catch (Exception e)
            {
                //Server.MapPath("~") = de root-map van het project
                string pad = Server.MapPath("~") + "/LoggingTracing/tracingLogging.txt";
                if (!System.IO.File.Exists(pad))
                {
                    System.IO.File.Create(pad);
                }

                using (StreamWriter swTracing = System.IO.File.AppendText(pad))
                {
                    swTracing.Write("\n\nDatum/Tijd: " + DateTime.Now + "\nException: " + e.StackTrace);
                }
            }
            return null;
        }

        [HttpPost]
        [Authorize]
        public ActionResult OfferAuction(double bedrag, int id, String titel, int gebruikersid, DateTime datum, DateTime vervaldag, String omschrijving, double prijs, int genre)
        {
            try {
                VeilingModel v = new VeilingModel();
                v.id = id;
                v.titel = titel;
                v.gebruikersid = gebruikersid;
                v.datum = datum;
                v.vervaldag = vervaldag;
                v.omschijving = omschrijving;
                v.genre = genre;

                var user = Membership.GetUser();
                var userIDO = user.ProviderUserKey;
                v.laatsteBieder = (int)userIDO; //Huidige gebruikersid opvragen

                double finalBedrag = prijs + bedrag;
                v.prijs = finalBedrag;

                //Veranderingen naar de DB sturen
                _db.Entry(v).State = System.Data.EntityState.Modified;
                _db.SaveChanges();

                ViewData["titel"] = "Bieding Succesvol";
                ViewData["boodschap"] = "Uw bieding is met succes aanvaard!";
            }
            catch (Exception e)
            {
                //Server.MapPath("~") = de root-map van het project
                string pad = Server.MapPath("~") + "/LoggingTracing/tracingLogging.txt";
                if (!System.IO.File.Exists(pad))
                {
                    System.IO.File.Create(pad);
                }

                using (StreamWriter swTracing = System.IO.File.AppendText(pad))
                {
                    swTracing.Write("\n\nDatum/Tijd: " + DateTime.Now + "\nException: " + e.StackTrace);
                }

                ViewData["titel"] = "Bieding Mislukt";
                ViewData["boodschap"] = "Uw bieding is niet aanvaard. Probeer later opnieuw...";
            }

            return View();
        }
    }
}